```typescript filename="@agentica/core/AgenticaOperationSelection" showLineNumbers
/**
 * Nestia agent operation selection.
 *
 * `AgenticaOperationSelection` is a type represents an operation
 * which has been selected by the A.I. chatbot of {@link Agentica}
 * class for the LLM (Large Language Model) function calling with
 * detailed {@link reason} of the selection (or cancellation).
 *
 * @author Samchon
 */
export interface AgenticaOperationSelection<Model extends ILlmSchema.Model> {
  /**
   * Target operation.
   *
   * Operation that has been selected to prepare LLM function calling,
   * or canceled due to no more required.
   */
  operation: AgenticaOperation<Model>;

  /**
   * The reason of the function selection or cancellation.
   */
  reason: string;

  toJSON(): IAgenticaOperationSelectionJson;
}
```